Static Analysis of Java Bytecode for Domain-specific Software Testing∗
نویسندگان
چکیده
Software testing is an important and expensive activity of the software development process. Techniques and tools are essential to improve test quality and productivity. Structural testing is a technique that uses characteristics such as control-flow and data-flow structures to derive testing requirements. By exercising such testing requirements the tester supposedly provides test cases that improve the software quality. Structural testing requires several activities that make use of code analysis, in general performed on the program source code. With the advent of Java it has become usual to perform such analysis directly on the bytecode instead of the source code, with a number of advantages. In this paper we discuss how to use the characteristics of Java bytecode analysis and how to extend it to implement structural criteria for two specific domains: aspect oriented programs and database applications. This project is supported by the Brazilian Funding Agencies – CNPq, FAPESP and Capes. XXI Simpósio Brasileiro de Engenharia de Software SBES 2007
منابع مشابه
JULIA: A Generic Static Analyser for the Java Bytecode
We describe our software tool JULIA for the static analysis of full sequential Java bytecode. This tool is generic in the sense that no specific abstract domain (analysis) is embedded in JULIA. Instead, abstract domains are provided as external classes that specialise the behaviour of JULIA. Static analysis is performed through a denotational fixpoint calculation, focused on some program points...
متن کاملJava Bytecode Instrumentation Made Easy: The DiSL Framework for Dynamic Program Analysis
Many software development tools (e.g., profilers, debuggers, testing tools) and frameworks (e.g., aspect weavers) are based on bytecode instrumentation techniques. While there are many low-level bytecode manipulation libraries that support the development of such tools and frameworks, they typically provide only low-level abstractions and require detailed knowledge of the Java Virtual Machine. ...
متن کاملJCSI: A tool for checking secure information flow in Java Card applications
This paper describes a tool for checking secure information flow in Java Card applications. The tool performs a static analysis of Java Card CAP files and includes a CAP viewer. The analysis is based on the theory of abstract interpretation and on a multi-level security policy assignment. Actual values of variables are abstracted into security levels, and bytecode instructions are executed over...
متن کاملString Concatenation Optimization on Java Bytecode
String concatenation via the “+” operator is one of the most convenient things to do in Java, and also one of the most expensive, in terms of memory and performance. In this paper, we present a comprehensive approach to reduce the overhead of consuming string concatenation operations by implicitly transforming the Java bytecode. The transformation is based on the results of the liveness analysi...
متن کاملDependence Analysis of Java Bytecode
Understanding program dependencies in a computer program is essential for many software engineering tasks such as program understanding, testing, debugging, reverse engineering, and maintenance. In this paper, we present an approach to dependence analysis of Java bytecode, and discuss some applications of our technique, which include Java bytecode slicing, understanding, and testing.
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2007